# Appendix A: Configuration File

When you start Helix Universal Server, it reads a configuration file to gather system settings. When you change Helix Universal Server configuration information, Helix Administrator updates the configuration file automatically. This appendix provides general information about the configuration file.

| For More Information: For details about configuration lists and variables, see the Helix Universal Server Configuration File Reference at http://www.realnetworks.com/resources/contentdelivery/ server/config_variables.html.

# Understanding the Configuration File

The configuration file holds the Helix Universal Server information in a series of XML-formatted lists and variables. The default file is `rmserver.cfg`, but you can specify an alternate file at startup, as described in "Starting Helix Universal Server". The alternate file might be one that you have manually edited, using `rmserver.cfg` as a starting point.

The Helix Universal Server installation directory contains a backup copy of the configuration file named `default.cfg`. This is a mirror image of the default `rmserver.cfg` file that was created during installation. You can restore your configuration file from the backup if you make changes that you want to undo, or if you accidentally delete the main copy.

| Note: Be sure to store the configuration file where only authorized users can make changes to it. The default location is Helix Universal Server's `Bin` directory.

| Tip: If you have multiple servers, you may want to name each configuration file differently to identify which server you're working with.

# Editing the Configuration File

You can change Helix Universal Server settings by editing the configuration file with any text editor or XML editor. Some third-party plug-ins may require that you add parameters and variables manually to the configuration file, for example. The configuration file's tags are based on XML (eXtensible Markup Language), and the file is organized into sections for clarity. There are four types of tags in the file:

1. XML declaration tag

2. optional comment tags

3. list tags

4. variable tags

Of these four types, only lists and variables make up the instructions to Helix Universal Server. All values for lists and variables are enclosed in double quotation marks.

| Tip: When you edit the configuration file manually, be sure to use correct syntax. Helix Universal Server looks for exact spellings and correct use of angle brackets. Helix Universal Server does not display messages related to syntax errors. Instead, it ignores any settings that it does not recognize.

| Note: Because Helix Administrator reflects the settings of the configuration file in use, exit Helix Administrator before opening the configuration file with a text editor.

## XML Declaration Tag

The XML declaration tag indicates which version of XML is in use. Helix Universal Server version 9.0 uses XML version 1.0. The declaration tag looks like this:

    <?XML Version="1.0" ?>

## Comment Tags

Optional comment tags are used in the configuration file to identify tag functions. Identical to comment tags in HTML, they begin with `<!--` and end with `-->`. For example, the following comment tag lets the administrator know that the parameters after it refer to the path settings:

    <!-- P A T H S -->

To disable a feature, convert the feature's tag or tags to a comment. Rather than converting each tag to a comment, you can place the comment's begin tag in front of the feature's first opening tag, and the comment's end tag after the feature's closing tag:

    <!-- The following feature is commented out
      ...feature lists and tags here...
    -->

| Warning! Do not nest comment tags within other comment tags.

## List Tags

Lists are used for instructions that have several parts, such as the MIME types or the multicast instructions. A list tag is followed by one or more list tags or variable tags. The list tag uses the following syntax:

    <List Name="name">
    ...
    </List>

Here, `name` is the list title. Using the correct capitalization for `name` is important.

Other lists or variables follow the list. The `</List>` tag signifies the end of the list. If other lists are inside the original list, they must also have closing `</List>` tags. The `MIMETypes` list is an example of a list that contains other lists.

| Tip: Indenting list items is not required, but is recommended for clarity.

## Variable Tags

Variable tags use the following syntax:

    <Var name="value"/>

Here, `name` is the variable name, and `value` is a string or a number, depending on the variable. Capitalization for both `name` and `value` is important. Unlike lists, variables do not have a closing tag; instead, a forward slash mark (`/`) appears before the closing angle bracket (`>`).

Variables can be independent elements (such as `LogPath`), or they may appear inside a list. When variables appear within a list, their meaning is determined by the value of the list name, even though they may appear identical in syntax to variables that are not inside lists. If there are multiple variables within a list that do similar things, their names must be unique. For example, the `Extension` variables within each `MIMETypes` list must have different names. This is accomplished by adding a number to the end of each, such as `Extension_01`, `Extension_02`, and so on.

| Tip: If you've restarted Helix Universal Server and it's not responding to a change you've made to a variable, make sure the variable has a closing forward slash mark, and that there is no space between them.

## Helix Universal Server Restart

You typically need to restart Helix Universal Server, as described in "Restarting Helix Universal Server", after you modify the configuration file manually. If you change the Helix Universal Server file manually on a UNIX computer, you can use `SIGHUP` to upload the changes to Helix Universal Server without breaking any open connections, as long as the changes do not require a full server restart. To have Helix Universal Server re-read the configuration file, use the following `SIGHUP` command:

    kill -HUP processID

in which `processID` is the Helix Universal Server process number, as shown in the `Logs/``rmserver.pid` file. For more on this, see "Process ID (PID)".

| Tip: Helix Administrator indicates when changes require a full restart. Use it as your guide to changes that you can and cannot upload with `SIGHUP`.

| © 2002 RealNetworks, Inc. All rights reserved. For more information, visit RealNetworks Click here if the Table of Contents frame is not visible at the left side of your screen.